home *** CD-ROM | disk | FTP | other *** search
/ User's Choice Windows CD / User's Choice Windows CD (CMS Software)(1993).iso / utility3 / jfklib.zip / WINDOWS.HPP < prev   
C/C++ Source or Header  |  1991-05-11  |  8KB  |  251 lines

  1. /*
  2.     WINDOWS.HPP - (C) 1990 by Joachim Kainz 'On a mission from Bhudda'
  3. */
  4.     #if !defined (__WINDOWS_HPP)
  5.     #define __WINDOWS_HPP 1
  6.  
  7.     #include "jfklib.hpp"
  8.     #include "msgloop.hpp"
  9.  
  10.     #define JFK_WINDOW 12121
  11.     #define self        *this
  12.  
  13.     class WINDOW {
  14.  
  15.       protected:
  16.         static WORD        wCount;
  17.         static MSGLOOP    msg;
  18.         static FARPROC2 lpFnOOPWndProc;
  19.  
  20.         FARPROC2 lpDefWndProc;
  21.  
  22.         // Kernel Methods
  23.  
  24.         virtual METHOD WMNull       (                       ) DEFMETH
  25.         virtual METHOD WMCreate       (LPCREATESTRUCT lpCreate);
  26.         virtual METHOD WMDestroy   (                       );
  27.         virtual METHOD WMMove       (POINT pt               ) DEFMETH
  28.         virtual METHOD WMSize       (
  29.                         WORD wSizing,
  30.                         int  nWidth,
  31.                         int  nHeigth
  32.                        ) DEFMETH
  33.         virtual METHOD WMActivate  (
  34.                         WORD wActivate,
  35.                         BOOL bMin,
  36.                         HWND hLast
  37.                        );
  38.  
  39.         virtual METHOD WMSetFocus       (HWND hLast                ) DEFMETH
  40.         virtual METHOD WMKillFocus      (HWND hNext                ) DEFMETH
  41.         virtual METHOD WMEnable            (BOOL bEnableFlag        ) DEFMETH
  42.         virtual METHOD WMSetRedraw      (BOOL bRedrawFlag        );
  43.         virtual METHOD WMSetText        (LPSTR lpText            );
  44.         virtual METHOD WMGetText        (LPSTR lpText, WORD wMax);
  45.         virtual METHOD WMGetTextLength    (                        );
  46.         virtual METHOD WMPaint            (                        );
  47.         virtual METHOD WMClose            (                        );
  48.  
  49.         virtual METHOD WMQueryEndSession () { return TRUE; }
  50.         virtual METHOD WMQueryOpen         () { return TRUE; }
  51.  
  52.         virtual METHOD WMEraseBkgnd         (HANDLE hDC            );
  53.         virtual METHOD WMSysColorChange     (                        ) DEFMETH
  54.         virtual METHOD WMEndSession         (BOOL bEnded            ) DEFMETH
  55.         virtual METHOD WMShowWindow         (BOOL bShow, long lShow);
  56.         virtual METHOD WMCtlColor         (
  57.                         HDC hCtlDC,
  58.                         WORD wCtlStyle,
  59.                         HWND hCtl
  60.                        );
  61.  
  62.         virtual METHOD WMWinIniChange    (LPSTR lpSectionName) DEFMETH
  63.         virtual METHOD WMDevModeChange    (LPSTR lpDeviceName    ) DEFMETH
  64.         virtual METHOD WMActivateApp    (
  65.                         BOOL bActivate,
  66.                         HANDLE hTask
  67.                        ) DEFMETH
  68.         virtual METHOD WMFontChange        () DEFMETH
  69.         virtual METHOD WMTimeChange        () DEFMETH
  70.         virtual METHOD WMCancelMode        ();
  71.         virtual METHOD WMSetCursor        (
  72.                         HCURSOR hCursorOwner,
  73.                         WORD    wNCHitTest,
  74.                         WORD    wMouseMsg
  75.                      );
  76.         virtual METHOD WMMouseActivate    (
  77.                         HWND hTopWnd,
  78.                         WORD NCHitTest,
  79.                         WORD wMouseMsg
  80.                      );
  81.  
  82.         virtual METHOD WMChildActivate () DEFMETH
  83.         virtual METHOD WMQueueSync       () DEFMETH
  84.  
  85.         virtual METHOD WMGetMinMaxInfo    (LPRECT lprt) DEFMETH
  86.         virtual METHOD WMPaintIcon        (BOOL bDraw    );
  87.         virtual METHOD WMIconEraseBkgnd    (HDC hDC    );
  88.  
  89.         virtual METHOD WMNextDlgCtl    (WORD wNext, BOOL bNext) DEFMETH
  90.         virtual METHOD WMSpoolerStatus (WORD wJobs              ) DEFMETH
  91.  
  92.         virtual METHOD WMDrawItem     (LPDRAWITEMSTRUCT lpDrawItem );
  93.         virtual METHOD WMMeasureItem (LPMEASUREITEMSTRUCT lpItem  ) DEFMETH
  94.         virtual METHOD WMDeleteItem     (LPDELETEITEMSTRUCT lpDelItem) DEFMETH
  95.         virtual METHOD WMVKeyToItem     (
  96.                         WORD wKey,
  97.                         WORD wCaretPos,
  98.                         HWND hListBox
  99.                        ) { return -1l; }
  100.         virtual METHOD WMCharToItem     (
  101.                         WORD wKey,
  102.                         int  nCaretPos,
  103.                         HWND hListBox
  104.                        ) { return -1l; }
  105.         virtual METHOD WMSetFont     (HFONT hFont, BOOL bSofort) DEFMETH
  106.         virtual METHOD WMGetFont     (                           ) DEFMETH
  107.  
  108.         // Non-Client Messages
  109.  
  110.         virtual METHOD WMNCCreate   (
  111.                         HWND hWnd,
  112.                         LPCREATESTRUCT lpCreate
  113.                        );
  114.         virtual METHOD WMNCDestroy    (             );
  115.         virtual METHOD WMNCCalcSize    (LPRECT lprt );
  116.         virtual METHOD WMNCHitTest    (POINT pt     );
  117.         virtual METHOD WMNCPaint    (HRGN hRgn     );
  118.         virtual METHOD WMNCActivate    (BOOL bActive);
  119.         virtual METHOD WMGetDlgCode    (             ) DEFMETH
  120.  
  121.         virtual METHOD WMNCMouseMove     (WORD wNCHitTest, POINT pt);
  122.         virtual METHOD WMNCLButtonDown     (WORD wNCHitTest, POINT pt);
  123.         virtual METHOD WMNCLButtonUp     (WORD wNCHitTest, POINT pt);
  124.         virtual METHOD WMNCLButtonDblClk (WORD wNCHitTest, POINT pt);
  125.         virtual METHOD WMNCRButtonDown     (WORD wNCHitTest, POINT pt) DEFMETH
  126.         virtual METHOD WMNCRButtonUp     (WORD wNCHitTest, POINT pt) DEFMETH
  127.         virtual METHOD WMNCRButtonDblClk (WORD wNCHitTest, POINT pt) DEFMETH
  128.         virtual METHOD WMNCMButtonDown     (WORD wNCHitTest, POINT pt) DEFMETH
  129.         virtual METHOD WMNCMButtonUp     (WORD wNCHitTest, POINT pt) DEFMETH
  130.         virtual METHOD WMNCMButtonDblClk (WORD wNCHitTest, POINT pt) DEFMETH
  131.  
  132.         // Keyboard - support
  133.  
  134.         virtual METHOD WMKeyDown         (
  135.                         WORD wKey,
  136.                         WORD wRepeat,
  137.                         WORD wExtended
  138.                        );
  139.         virtual METHOD WMKeyUp             (
  140.                         WORD wKey,
  141.                         WORD wRepeat,
  142.                         WORD wExtended
  143.                        );
  144.         virtual METHOD WMChar             (
  145.                         WORD wKey,
  146.                         WORD wRepeat,
  147.                         WORD wExtended
  148.                        ) DEFMETH
  149.         virtual METHOD WMDeadChar         (
  150.                         WORD wKey,
  151.                         WORD wRepeat,
  152.                         WORD wExtended
  153.                        ) DEFMETH
  154.         virtual METHOD WMSysKeyDown         (
  155.                         WORD wKey,
  156.                         WORD wRepeat,
  157.                         WORD wExtended
  158.                        );
  159.         virtual METHOD WMSysKeyUp         (
  160.                         WORD wKey,
  161.                         WORD wRepeat,
  162.                         WORD wExtended
  163.                        );
  164.         virtual METHOD WMSysChar         (
  165.                         WORD wKey,
  166.                         WORD wRepeat,
  167.                         WORD wExtended
  168.                        );
  169.         virtual METHOD WMSysDeadChar     (
  170.                         WORD wKey,
  171.                         WORD wRepeat,
  172.                         WORD wExtended
  173.                        ) DEFMETH
  174.  
  175.         friend long FAR PASCAL DefOOPWndProc (HWND, WORD, WORD, LONG);
  176.  
  177.         // These are the MessageGroups supported by DefOOPWndProc
  178.  
  179.         virtual METHOD WndKernelProc (WORD wMsg, WORD wParam, long lParam);
  180.         virtual METHOD WndTransProc  (WORD wMsg, WORD wParam, long lParam) DEFMETH
  181.         virtual METHOD WndCompProc   (WORD wMsg, WORD wParam, long lParam) DEFMETH
  182.         virtual METHOD WndNCProc     (WORD wMsg, WORD wParam, long lParam);
  183.         virtual METHOD WndKeyProc    (WORD wMsg, WORD wParam, long lParam);
  184.         virtual METHOD WndDlgProc    (WORD wMsg, WORD wParam, long lParam) DEFMETH
  185.         virtual METHOD WndMouseProc  (WORD wMsg, WORD wParam, long lParam) DEFMETH
  186.         virtual METHOD WndMdiProc    (WORD wMsg, WORD wParam, long lParam) DEFMETH
  187.         virtual METHOD WndClipProc   (WORD wMsg, WORD wParam, long lParam) DEFMETH
  188.         virtual METHOD WndDDEProc    (WORD wMsg, WORD wParam, long lParam) DEFMETH
  189.         virtual METHOD WndUserProc   (WORD wMsg, WORD wParam, long lParam) DEFMETH
  190.  
  191.         HWND      EXPORT GetWindowHandle () const { return hWnd;                 }
  192.         HWND     EXPORT GetParent        () const { return ::GetParent (hWnd);    }
  193.         WORD     EXPORT GetCount        () const { return wCount;                 }
  194.         FARPROC2 EXPORT GetOOPWndProc   () const;
  195.  
  196.         HWND hWnd;
  197.  
  198.         EXPORT WINDOW (
  199.                     WORD        wStyle,
  200.                     HCURSOR        hCursor,
  201.                     HICON        hIcon,
  202.                     HBRUSH        hBackground,
  203.                     WORD        wClsExtra,
  204.                     WORD        wWndExtra,
  205.                     LPSTR        lpClass,
  206.                     FARPROC2    lpFnProc
  207.                 );
  208.  
  209.       public:
  210.         EXPORT ~WINDOW ();
  211.         EXPORT  WINDOW (
  212.                     int            nCmdShow    = SW_NORMAL,
  213.                     int            x            = CW_USEDEFAULT,
  214.                     int            y            = CW_USEDEFAULT,
  215.                     int            cx            = CW_USEDEFAULT,
  216.                     int            cy            = CW_USEDEFAULT,
  217.                     long        lStyle        = WS_OVERLAPPEDWINDOW,
  218.                     LPSTR       lpName        = "",
  219.                     HANDLE        hMenu        = NULL,
  220.                     HANDLE        hParent        = NULL,
  221.                     long        lExStyle    = NULL,
  222.                     WORD        wStyle        = CS_VREDRAW | CS_HREDRAW,
  223.                     HCURSOR        hCursor        = LoadCursor (NULL, IDC_ARROW),
  224.                     HICON        hIcon        = NULL,
  225.                     HBRUSH        hBackground = COLOR_WINDOW+1,
  226.                     WORD        wClsExtra    = 0,
  227.                     WORD        wWndExtra    = 0,
  228.                     LPSTR        lpParam        = NULL,
  229.                     LPSTR        lpClass        = MAKEINTRESOURCE (JFK_WINDOW),
  230.                     FARPROC2    lpFnProc    = DefWindowProc
  231.                 );
  232.  
  233.         friend void EXPORT SetWindowText (const WINDOW &wnd, LPSTR lpText);
  234.         friend void EXPORT ShowWindow    (const WINDOW &wnd, int nShow   );
  235.         friend BOOL EXPORT IsWindow      (const WINDOW &wnd                 );
  236.         friend int  EXPORT MsgLoop       (const WINDOW &wnd                 );
  237.         friend long EXPORT SendMessage   (
  238.                             const WINDOW &wnd,
  239.                             WORD           wMsg,
  240.                             WORD           wParam = NULL,
  241.                             LONG           lParam = NULL
  242.                            );
  243.         friend long EXPORT PostMessage   (
  244.                             const WINDOW &wnd,
  245.                             WORD           wMsg,
  246.                             WORD           wParam = NULL,
  247.                             LONG           lParam = NULL
  248.                             );
  249.     };
  250.  
  251.     #endif